package com.ccrfid.rmc6.service.business.patrol;

import com.ccrfid.rmc6.appconfig.exception.pojo.AppException;
import com.ccrfid.rmc6.entity.business.patrol.PatrolLocationEntity;
import com.ccrfid.rmc6.entity.business.patrol.PatrolTimeRangeEntity;
import com.ccrfid.rmc6.entity.poi.PoiLocationEntity;
import com.ccrfid.rmc6.pojo.dto.patrol.PatrolGroupDto;
import com.ccrfid.rmc6.pojo.dto.patrol.PatrolPersonnelDto;

import java.util.List;

public interface PatrolConfigService {
    //获取巡控时段
    List<PatrolTimeRangeEntity> getPatrolTimeRanges();

    //获取巡控组列表
    List<PatrolGroupDto> getPatrolGroupInfoList();

    //获取某个巡控组
    PatrolGroupDto getPatrolGroupInfo(Long groupId);

    //获取可添加到巡控组的警员信息
    List<PatrolPersonnelDto> getPatrolPersonnelList();

    //新增一个巡控组
    PatrolGroupDto createPatrolGroupInfo(PatrolGroupDto patrolGroup) throws AppException;

    //修改巡控组
    PatrolGroupDto updatePatrolGroupInfo(Long groupId, PatrolGroupDto patrolGroup) throws AppException;

    //删除一个巡控组
    Boolean deletePatrolGroupInfo(Long groupId) throws AppException;

    //巡控区域设置
    //************
    //获取所有巡控区域
    List<PatrolLocationEntity> getPatrolLocationList();

    //获取可添加到巡控区域的区域信息
    List<PoiLocationEntity> getFreeLocations();

    //获取某个巡控区域
    PatrolLocationEntity getPatrolLocation(Long locationId);

    //添加某个巡控区域
    PatrolLocationEntity createPatrolLocation(PatrolLocationEntity patrolLocation) throws AppException;

    //修改某个巡控区域
    PatrolLocationEntity updatePatrolLocation(Long locationId, PatrolLocationEntity patrolLocation) throws AppException;

    //删除某个巡控区域
    Boolean deletePatrolLocation(Long locationId) throws AppException;
}
